package research.ui.editors.tableeditors.sample;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.swt.widgets.Composite;

import research.domain.DefaultParameterValue;
import research.domain.Parameter;
import research.entity.Entity;
import research.entity.EntityType;
import research.ui.editors.tableeditors.EntityLabelProvider;
import research.ui.editors.tableeditors.EntitySorter;
import research.ui.editors.tableeditors.EntityTableEditor;

public class SampleTableEditor extends EntityTableEditor {
	
	private List<Entity> defaultValues;

	public SampleTableEditor(Composite parent) {
		super(EntityType.ParameterValue, false);

		render(parent);
		
		setCellModifier(new SampleCellModifier(this));
		setLabelProvider(new SampleLabelProvider(this));
		setSorter(new EntitySorter());
	}

	@Override
	protected List<ColumnData> getColumnsData() {

		List<ColumnData> columns = new ArrayList<ColumnData>();
		columns.add(new ColumnData("Параметр", 180, createTextCellEditor(50)));
		columns.add(new ColumnData("Единицы", 100, createTextCellEditor(20)));
		columns.add(new ColumnData("Значение", 100, createTextCellEditor(10)));
		columns.add(new ColumnData("Регламент", 100, createTextCellEditor(20)));
		columns.add(new ColumnData("Мин. значение", 100, createTextCellEditor(10)));
		columns.add(new ColumnData("Макс. значение", 100, createTextCellEditor(10)));

		return columns;
	}


	public void setDefaultValues(List<Entity> defaultValues) {
		this.defaultValues = defaultValues;
	}

	public String getDefaultParameterValue(Parameter parameter) {
		for (Entity val : defaultValues) {
			DefaultParameterValue value = (DefaultParameterValue) val;
			if (value.getParameter().equals(parameter))
				return EntityLabelProvider.render(value.getValue());
		}
		return "-";
	}
	
}